const db = require('../db/index')
const bcrypt = require('bcryptjs')
/**
 * 获取用户基本信息路由
 * 
 * @param {}} req 
 * @param {*} res 
 */
exports.getUserInfo = (req, res) => {
    const sql = `select * from ev_users where id =?`
    // 携带token,认证成功后会自动挂载一个user对象
    db.query(sql, req.user.id, function (err, result) {
        if (err) {
            return res.cc(err)
        }
        if (result.length !== 1) {
            return res.cc('获取用户信息失败')
        }
        res.send({
            status: '0',
            message: '成功',
            data: result[0]
        })
    })
}
/**
 * 更新用户基本信息处理函数
 * 
 * @param {*} req 
 * @param {*} res 
 */
exports.upadteUserInfo = (req, res) => {
    const sql = `update ev_users set ? where id=?`
    db.query(sql, [req.body, req.user.id], (err, result) => {
        if (err) {
            return res.cc('更新失败')
        }
        return res.cc('更新成功')
    })
}
/**
 * 更新用户密码
 * 
 * @param {*} req 
 * @param {*} res 
 */
exports.upatePassword = (req, res) => {
    const sql = 'select * from ev_users where id=?'
    db.query(sql, req.user.id, (err, result) => {
        if (err) {
            return res.cc('执行sql失败')
        }
        if (result.length != 1) {
            return res.cc('没找到用户')
        }
        const user = result[0]
        // 判断旧密码是否正确
        const compareResult = bcrypt.compareSync(req.body.oldPwd, user.password)
        if (!compareResult) {
            return res.cc('密码不正确')
        }
        const newPwd = bcrypt.hashSync(req.body.newPwd, 10)
        const updateSql = `update ev_users  set password='${newPwd}' where id=${req.user.id}`
        console.log('updateSql', updateSql)
        db.query(updateSql, (err, result) => {
            if (err) {
                console.log('更新用户密码失败', err);
                return res.cc('更新用户密码失败')
            }
            return res.cc('更新用户密码成功')
        })
    })
}
/**
 * 更新用户头像
 * 
 * @param {} req 
 * @param {*} res 
 */
exports.updateAvatar = (req, res) => {
    const sql='update ev_users set user_pic=? where id=?'
    db.query(sql,[req.body.avator,req.user.id],(err,result)=>{
        if (err) {
            return res.cc('执行sql失败')
        }
        if(result.affectedRows!=1){
            return res.cc('更换头像失败')
        }
        return res.cc({
            status:200,
            message:'更新头像成功'
        })
    })
}